Serveur d'exploration H2N2

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

A strategy for array management in local memory

Identifieur interne : 000298 ( France/Analysis ); précédent : 000297; suivant : 000299

A strategy for array management in local memory

Auteurs : Christine Eisenbeis [France] ; William Jalby [France] ; Daniel Windheiser [France] ; François Bodin [France]

Source :

RBID : ISTEX:4BE0B51D8EED8EFB43D01F7DAD47DF902805275D

English descriptors

Abstract

Abstract: One major point in loop restructuring for data locality optimization is the choice and the evaluation of data locality criteria. In this paper we show how to compute approximations of window sets defined by Gannon, Jalby, and Gallivan. The window associated with an iterationi describes the “active” portion of an array: elements that have already been referenced before iterationi and that will be referenced after iterationi. Such a notion is extremely useful for data localization because it identifies the portions of arrays that are worth keeping in local memory because they are going to be referenced later. The computation of these window approximations can be performed symbolically at compile time and generates a simple geometrical shape that simplifies the management of the data transfers. This strategy allows derivation of a global strategy of data management for local memories which may be combined efficiently with various parallelization and/or vectorization optimizations. Indeed, the effects of loop transformations fit naturally into the geometrical framework we use for the calculations. The determination of window approximations is studied both from a theoretical and a computational point of view, and examples of applications are given.

Url:
DOI: 10.1007/BF01582075


Affiliations:


Links toward previous steps (curation, corpus...)


Links to Exploration step

ISTEX:4BE0B51D8EED8EFB43D01F7DAD47DF902805275D

Le document en format XML

<record>
<TEI wicri:istexFullTextTei="biblStruct">
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">A strategy for array management in local memory</title>
<author>
<name sortKey="Eisenbeis, Christine" sort="Eisenbeis, Christine" uniqKey="Eisenbeis C" first="Christine" last="Eisenbeis">Christine Eisenbeis</name>
</author>
<author>
<name sortKey="Jalby, William" sort="Jalby, William" uniqKey="Jalby W" first="William" last="Jalby">William Jalby</name>
</author>
<author>
<name sortKey="Windheiser, Daniel" sort="Windheiser, Daniel" uniqKey="Windheiser D" first="Daniel" last="Windheiser">Daniel Windheiser</name>
</author>
<author>
<name sortKey="Bodin, Francois" sort="Bodin, Francois" uniqKey="Bodin F" first="François" last="Bodin">François Bodin</name>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">ISTEX</idno>
<idno type="RBID">ISTEX:4BE0B51D8EED8EFB43D01F7DAD47DF902805275D</idno>
<date when="1994" year="1994">1994</date>
<idno type="doi">10.1007/BF01582075</idno>
<idno type="url">https://api.istex.fr/ark:/67375/1BB-8LHSZTFV-1/fulltext.pdf</idno>
<idno type="wicri:Area/Istex/Corpus">000C28</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Corpus" wicri:corpus="ISTEX">000C28</idno>
<idno type="wicri:Area/Istex/Curation">000C28</idno>
<idno type="wicri:Area/Istex/Checkpoint">000C16</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Checkpoint">000C16</idno>
<idno type="wicri:doubleKey">0025-5610:1994:Eisenbeis C:a:strategy:for</idno>
<idno type="wicri:Area/Main/Merge">001F27</idno>
<idno type="wicri:Area/Main/Curation">001E45</idno>
<idno type="wicri:Area/Main/Exploration">001E45</idno>
<idno type="wicri:Area/France/Extraction">000298</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title level="a" type="main" xml:lang="en">A strategy for array management in local memory</title>
<author>
<name sortKey="Eisenbeis, Christine" sort="Eisenbeis, Christine" uniqKey="Eisenbeis C" first="Christine" last="Eisenbeis">Christine Eisenbeis</name>
<affiliation wicri:level="3">
<country xml:lang="fr">France</country>
<wicri:regionArea>INRIA Rocquencourt, 78153, Le Chesnay</wicri:regionArea>
<placeName>
<region type="region" nuts="2">Île-de-France</region>
<settlement type="city">Le Chesnay</settlement>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Jalby, William" sort="Jalby, William" uniqKey="Jalby W" first="William" last="Jalby">William Jalby</name>
<affiliation wicri:level="3">
<country xml:lang="fr">France</country>
<wicri:regionArea>IRISA/INRIA Rennes, Rennes</wicri:regionArea>
<placeName>
<region type="region">Région Bretagne</region>
<region type="old region">Région Bretagne</region>
<settlement type="city">Rennes</settlement>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Windheiser, Daniel" sort="Windheiser, Daniel" uniqKey="Windheiser D" first="Daniel" last="Windheiser">Daniel Windheiser</name>
<affiliation wicri:level="3">
<country xml:lang="fr">France</country>
<wicri:regionArea>IRISA/INRIA Rennes, Rennes</wicri:regionArea>
<placeName>
<region type="region">Région Bretagne</region>
<region type="old region">Région Bretagne</region>
<settlement type="city">Rennes</settlement>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Bodin, Francois" sort="Bodin, Francois" uniqKey="Bodin F" first="François" last="Bodin">François Bodin</name>
<affiliation wicri:level="3">
<country xml:lang="fr">France</country>
<wicri:regionArea>IRISA/INRIA Rennes, Rennes</wicri:regionArea>
<placeName>
<region type="region">Région Bretagne</region>
<region type="old region">Région Bretagne</region>
<settlement type="city">Rennes</settlement>
</placeName>
</affiliation>
</author>
</analytic>
<monogr></monogr>
<series>
<title level="j">Mathematical Programming</title>
<title level="j" type="abbrev">Mathematical Programming</title>
<idno type="ISSN">0025-5610</idno>
<idno type="eISSN">1436-4646</idno>
<imprint>
<publisher>Springer-Verlag</publisher>
<pubPlace>Berlin/Heidelberg</pubPlace>
<date type="published" when="1994-01-01">1994-01-01</date>
<biblScope unit="volume">63</biblScope>
<biblScope unit="issue">1-3</biblScope>
<biblScope unit="page" from="331">331</biblScope>
<biblScope unit="page" to="370">370</biblScope>
</imprint>
<idno type="ISSN">0025-5610</idno>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt>
<idno type="ISSN">0025-5610</idno>
</seriesStmt>
</fileDesc>
<profileDesc>
<textClass>
<keywords scheme="Teeft" xml:lang="en">
<term>Algorithm</term>
<term>Analytical model</term>
<term>Approximate window</term>
<term>Approximate windows</term>
<term>Approximation</term>
<term>Approximation window</term>
<term>Arbitrary point</term>
<term>Array</term>
<term>Array element</term>
<term>Array elements</term>
<term>Array management</term>
<term>Atomic dependence graph</term>
<term>Basic idea</term>
<term>Best solution</term>
<term>Block sizes</term>
<term>Cache</term>
<term>Classical knapsack problem</term>
<term>Code generation process</term>
<term>Coherence</term>
<term>Coherence constraints</term>
<term>Complex behavior</term>
<term>Computation</term>
<term>Constant shape</term>
<term>Convex hull</term>
<term>Corresponding window</term>
<term>Corresponding windows</term>
<term>Data accesses</term>
<term>Data dependencies</term>
<term>Data locality</term>
<term>Data locality optimization</term>
<term>Data transfers</term>
<term>Dependence graph</term>
<term>Dependency</term>
<term>Different occurrences</term>
<term>Distinct elements</term>
<term>Dominant window</term>
<term>Eisenbeis</term>
<term>Exact reference windows</term>
<term>Execution order</term>
<term>Extreme points</term>
<term>First case</term>
<term>First problem</term>
<term>General results</term>
<term>General structure</term>
<term>Geometric properties</term>
<term>Geometrical framework</term>
<term>Global strategy</term>
<term>Hyperplane</term>
<term>Innermost</term>
<term>Innermost loop</term>
<term>Innermost loops</term>
<term>Input dependence</term>
<term>Integer</term>
<term>Integer coordinates</term>
<term>Integer points</term>
<term>International conference</term>
<term>Iteration</term>
<term>Iteration space</term>
<term>Iteration vector</term>
<term>Knapsack</term>
<term>Knapsack problem</term>
<term>Large number</term>
<term>Last iteration</term>
<term>Limited size</term>
<term>Linear function</term>
<term>Linear references</term>
<term>Loading strategy</term>
<term>Local memories</term>
<term>Local memory</term>
<term>Local memory management</term>
<term>Local memory management strategy</term>
<term>Local memory size</term>
<term>Local memory space</term>
<term>Locality</term>
<term>Locality properties</term>
<term>Loop</term>
<term>Loop body</term>
<term>Loop bounds</term>
<term>Loop execution</term>
<term>Loop interchange</term>
<term>Loop restructuring</term>
<term>Loop reversal</term>
<term>Loop transformations</term>
<term>Main memory</term>
<term>Main memory accesses</term>
<term>Main result</term>
<term>Management problem</term>
<term>Management strategy</term>
<term>Memory locations</term>
<term>Memory management</term>
<term>Memory references</term>
<term>Memory space</term>
<term>Multiple copies</term>
<term>Next section</term>
<term>Optimization</term>
<term>Optimized code</term>
<term>Other hand</term>
<term>Outer loop</term>
<term>Outermost loops</term>
<term>Parallelepiped</term>
<term>Parallelization</term>
<term>Previous example</term>
<term>Previous section</term>
<term>Previous studies</term>
<term>Program transformation</term>
<term>Rational interval</term>
<term>Reference window</term>
<term>Reference windows</term>
<term>Referenced</term>
<term>Rice university</term>
<term>Same memory location</term>
<term>Second case</term>
<term>Section details</term>
<term>Simple case</term>
<term>Small example</term>
<term>Spatial locality</term>
<term>Special cases</term>
<term>Spot contention</term>
<term>Standard polynomial algorithms</term>
<term>Submodule span</term>
<term>Subset</term>
<term>Such cases</term>
<term>Technical report</term>
<term>Temporary array</term>
<term>Theoretical point</term>
<term>Time step</term>
<term>Time steps</term>
<term>Timing function</term>
<term>Total number</term>
<term>Tradeoff</term>
<term>Uniprocessor case</term>
<term>Vector form</term>
<term>Vector length</term>
<term>Vectorization</term>
<term>Window approximation</term>
<term>Window approximations</term>
<term>Window characterization</term>
<term>Window computation</term>
<term>Window size</term>
<term>Window size computation</term>
<term>Window sizes</term>
</keywords>
</textClass>
<langUsage>
<language ident="en">en</language>
</langUsage>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">Abstract: One major point in loop restructuring for data locality optimization is the choice and the evaluation of data locality criteria. In this paper we show how to compute approximations of window sets defined by Gannon, Jalby, and Gallivan. The window associated with an iterationi describes the “active” portion of an array: elements that have already been referenced before iterationi and that will be referenced after iterationi. Such a notion is extremely useful for data localization because it identifies the portions of arrays that are worth keeping in local memory because they are going to be referenced later. The computation of these window approximations can be performed symbolically at compile time and generates a simple geometrical shape that simplifies the management of the data transfers. This strategy allows derivation of a global strategy of data management for local memories which may be combined efficiently with various parallelization and/or vectorization optimizations. Indeed, the effects of loop transformations fit naturally into the geometrical framework we use for the calculations. The determination of window approximations is studied both from a theoretical and a computational point of view, and examples of applications are given.</div>
</front>
</TEI>
<affiliations>
<list>
<country>
<li>France</li>
</country>
<region>
<li>Région Bretagne</li>
<li>Île-de-France</li>
</region>
<settlement>
<li>Le Chesnay</li>
<li>Rennes</li>
</settlement>
</list>
<tree>
<country name="France">
<region name="Île-de-France">
<name sortKey="Eisenbeis, Christine" sort="Eisenbeis, Christine" uniqKey="Eisenbeis C" first="Christine" last="Eisenbeis">Christine Eisenbeis</name>
</region>
<name sortKey="Bodin, Francois" sort="Bodin, Francois" uniqKey="Bodin F" first="François" last="Bodin">François Bodin</name>
<name sortKey="Jalby, William" sort="Jalby, William" uniqKey="Jalby W" first="William" last="Jalby">William Jalby</name>
<name sortKey="Windheiser, Daniel" sort="Windheiser, Daniel" uniqKey="Windheiser D" first="Daniel" last="Windheiser">Daniel Windheiser</name>
</country>
</tree>
</affiliations>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Sante/explor/H2N2V1/Data/France/Analysis
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000298 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/France/Analysis/biblio.hfd -nk 000298 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Sante
   |area=    H2N2V1
   |flux=    France
   |étape=   Analysis
   |type=    RBID
   |clé=     ISTEX:4BE0B51D8EED8EFB43D01F7DAD47DF902805275D
   |texte=   A strategy for array management in local memory
}}

Wicri

This area was generated with Dilib version V0.6.33.
Data generation: Tue Apr 14 19:59:40 2020. Site generation: Thu Mar 25 15:38:26 2021